package com.yida.gwj.vote.outside.mapper;

import com.yida.gwj.vote.outside.domain.GwjVoteResult;
import com.yida.gwj.vote.outside.domain.dto.GwjVoteResultDTO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 投票结果列Mapper接口
 *
 * @author lqq
 * @date 2023-03-22
 */
public interface GwjVoteResultMapper {
	/**
	 * 查询投票结果列
	 *
	 * @param resultId 投票结果列主键
	 * @return 投票结果列
	 */
	public GwjVoteResultDTO selectVoteResultByResultId(Long resultId);

	/**
	 * 查询投票结果列列表（只查已选择的）
	 *
	 * @param voteResultList 投票结果列
	 * @return 投票结果列集合
	 */
	public List<GwjVoteResultDTO> selectVoteResultList(GwjVoteResultDTO voteResultList);

	/**
	 * 查询投票结果列列表
	 *
	 * @param voteResultList 投票结果列
	 * @return 投票结果列集合
	 */
	public List<GwjVoteResultDTO> selectVoteResultDtoList(GwjVoteResultDTO voteResultList);

	/**
	 * 新增投票结果列
	 *
	 * @param voteResultList 投票结果列
	 * @return 结果
	 */
	public int insertVoteResult(GwjVoteResult voteResultList);

	/**
	 * 修改投票结果列
	 *
	 * @param voteResultList 投票结果列
	 * @return 结果
	 */
	public int updateVoteResult(GwjVoteResult voteResultList);

	/**
	 * 新增投票结果
	 *
	 * @param voteResults 投票结果
	 * @return 结果
	 */
	public int insertBatchVoteResult(@Param("voteResults") List<GwjVoteResult> voteResults);

	/**
	 * 删除投票结果列
	 *
	 * @param resultId 投票结果列主键
	 * @return 结果
	 */
	public int deleteVoteResultByResultId(Long resultId);

	/**
	 * 批量删除投票结果列
	 *
	 * @param resultIds 需要删除的数据主键集合
	 * @return 结果
	 */
	public int deleteVoteResultByResultIds(Long[] resultIds);

	/**
	 * 批量删除投票结果列
	 *
	 * @param houseCodes 需要删除的数据房屋标识码集合
	 * @param voteId     投票ID
	 * @return 结果
	 */
	public int deleteVoteResultByHouseCodesAndVoteId(@Param("houseCodes") String[] houseCodes, @Param("voteId") Long voteId);
}
